This invention lies in the technical field of computational load distribution in networked computing environments. In particular, the invention lies in the field of green data centre technology, and energy-efficient data center load distribution.
Given their enormous electrical power consumption and associated carbon footprint, computing environments such as data centres are natural targets for techniques aimed at improving their energy efficiency and reducing their impact on the environment. This is especially true in light of the explosive growth in the number of data centres and the increasing dependence of our society on the information technology and computing services provided by them. Besides, energy costs are a major fraction of the operating costs of data centres, becoming almost as important as the cost of the facilities and equipment.
Data centers use some energy to power the IT equipment; computers, storage and networking equipment. The operation of this equipment produces heat (roughly equivalent to the amount of power provided to the IT equipment as there is no other way to dissipate the used energy) so another major use of data centre power is to remove this heat from the data centre equipment and halls and to expel it to the outside (by using, for example, air conditioners).
Existing data centers are provided with global/centralised controllers which gather information from the devices in the data centre, and allocate and redistribute tasks among the individual devices in order to pursue a particular policy goal, such as energy efficient operation. Complex algorithms exist for calculating and realising optimum distribution of computational load among devices and correct operating settings of cooling equipment.
As the size of data centres grows, and their increasing importance in IT infrastructure provision increases, the complexity of the algorithms executed by the global/centralised controllers in order to meet energy efficiency targets also increases.
The transferring load step may be conditional upon the obtained indications, so that the process executed by the individual computing devices comprises the steps of: obtaining an indication of current capacity for additional load at the or each member of a group of one or more computing devices from among the plurality of computing devices; if, based on the obtained indications of current capacity for additional load at the or each member of the group, there is a member of the group with capacity for additional load, transferring load from the executing computing device to a member of the group at which it is indicated that there is capacity for additional load. Of course, because load is transferred which was already hosted by or handled by a computing device, the method may be considered to be a method for redistributing load among a plurality of interconnected computing devices.
Membership of the group is restricted to computing devices to a particular side of the executing computing device in the one dimension, the particular side being consistent for each execution of the process (regardless of executing computing device) and being defined as the load transfer direction side. For example, if the load transfer direction is from low to high in the x-dimension, and designated array positions are given as (X, Y), for 1≦X≦Xmax, and 1≦Y≦Ymax, then for an executing computing device designated position (X, Y), membership of the group is restricted to computing devices designated X coordinates of X+1 or higher up to a maximum of Xmax. Of course, it may be that membership of the group is more restricted: for example, it may restricted to a computing device or computing devices in a subsequent adjacent designated position to the executing device in the load transfer direction of the one dimension, or it may be restricted to a computing device or computing devices within a predetermined maximum number of designated positions of the executing device in the load transfer direction of the one dimension. Furthermore, when there is more than one dimension in the n-dimensional array, membership may be restricted in terms of designated position in one or more of the other dimensions.
The n-dimensional array may be, for example, 1-dimensional, 2-dimensional, 3-dimensional, or any positive integer number of dimensions. For example, some data centre architectures may designate positions according to a six-dimensional array. The dimensions may be notional dimensions, defined only by the allocation of coordinates (designated positions) to computing devices, or may represent the physical location of the computing device among the plurality of interconnected computing devices.
The series of designated positions in one dimension of the n-dimensions may be every position from the first position to the penultimate position, inclusive. That is, every position except for the final position in the load transfer direction. The one or more computing devices per designated position which execute the process may be each computing device to which the designated position is designated. In addition, the one or more computing devices per designated position which execute the process may be restricted to those computing devices which currently have load. In other words, an order is established in which the computing devices are to execute the process, and computing devices not having load when it comes to their turn in the order do not execute the process. This order may be random, or may follow some logical order. For example, the logical order may be determined in accordance with the designated positions of the computing devices, working through in some logical order which may include determining the order in which computing devices are to execute the process in dependence upon their position in the one dimension in which the load transfer direction is assigned (for example with increasing or decreasing position in the load transfer direction). However, if a computing device is not hosting any load when it comes to that computing device's turn to execute the process, that computing device does not execute the process, and the process is executed by the next computing device in the order which has load to transfer. The process is executed by one computing device at a time, in turn (according to the order, see above), and may comprise a step of, after completion of load transfer, requesting or notifying or instructing the next computing device in the order to execute the process.
Embodiments may be such that a computing device is assumed to be an operational computing device, able to process/handle load, and non-operational computing devices may be considered not to be part of the plurality of interconnected computing devices. Alternatively, it may be that non-operational computing devices are considered to be included in the plurality of interconnected computing devices, but are not able to execute the process, and when acting as a group member are taken to have no/zero capacity for additional load.